/**
 开发团队 :
 开发人员 : ZBB295
 开发时间 : 2022/8/15 20:50
 文件名称 : article.js
 开发工具 : WebStorm
 */

//导入文章集合构造函数模块
const { Article } = require('../../model/article')
// 导入mongoose-sex-page模块
const pagination = require('mongoose-sex-page');

const article_hander = async (req,res)=>{

    // 接收客户端传递过来的页码
    const page = req.query.page;

    //标识当前访问的是文章管理页面
    req.app.locals.currentlink = 'article';

    // page 指定当前页
    // size 指定每页显示的数据条数
    // display 指定客户端要显示的页码数量
    // exec 向数据库中发送查询请求

    //查询所有文章数据
    //populate为联合查询相当于sql中 left join
    //后面的lean()是将查询出来的mongoose文档对象转换为普通对象，否则在渲染模版时候会出错
    // let articles = await Article.find().populate('author').lean();
    let articles = await pagination(Article).find().page(page).size(2).display(3).populate('author').exec();
    let str = JSON.stringify(articles);
    articles = JSON.parse(str);
    // res.send(articles)

    // res.send(articles);
    // {   "page":1,
    //     "size":2,
    //     "total":1,
    //     "records":[
    //                    {"_id":"62fb6b771cac0e6ecd33793e","title":"测试文章",
    //                     "author":{"_id":"62f7b3cee09b419a40adaec9","username":"itheima","email":"itheima@itcast.cn","password":"$2a$10$UNNm.cWk7p21fno0z3vwb.o4g0mqcvvTAPrUVqFF.oIDNskaK5Rle","role":"admin","state":0,"__v":0},
    //                      "publishDate":"2022-08-19T00:00:00.000Z","cover":"\\uploads\\d8a79e7b46b44b5ced5e38500","content":"<p>测试内容</p>","__v":0
    //                    }
    //                ],
    //      "pages":1,
    //      "display":[1]
    // }
    //查询文章总条数
    const count = await Article.countDocuments({});

    // 渲染文章列表页面模板
    res.render('admin/article', {
        articles: articles,
        count:count
    });

}

module.exports = article_hander;